/* 
 * File:   Structs.h
 * Author: lucia
 *
 * Created on 15 de octubre de 2014, 16:40
 */

#ifndef STRUCTS_H
#define	STRUCTS_H

#include <string>

struct Event {
    char released;
    char pressed;
};

struct Element {
    char type; // R:rectangle, C:circle, P:polygon, T:trapezium, L(?):parallellogram, M(?):character/player, NULL: vacio
    // ( type tambien podria ser string)
    int id; // id del objeto
    int ubic; //ubicacion dinamica
    float x; // posicion x
    float y; // posicion y
    float rot; // por si roto el objeto
};

struct ObjectInit {
    int objectId;
    int imageId;
    float x; // posicion x
    float y; // posicion y
    float rot; // por si roto el objeto
    float width; // == base de trapezium y parallellogram
    float height; // == altura de trapezium y parallellogram    
    bool estatico;

    int ubicDyn;

    int idCharacter;
    int stateCharacter; // estado del character 1:JUMPING 2:KNEELING 3:FALLINGDOWN 4:WALKING 5:WAIT
    struct Event event;
    bool direction;
    int lifes;
    int score;

    //shoot
    int bulletStat; // 0: vivo 1: dead  2:nuevo
    int enemyStat;
    
    //transicion de niveles
    int level; //0 espera 1 nivel1 2 nivel2    
    int cantElementosEnviados;

};

struct Pantalla {
    char type; // id ventana
    int elements;
    int pxHeight;
    int pxWidth;
    int luHeight;
    int luWidth;
    int characterId;
    int maxPlayers;
    int reloadLevel;    // 0: nivel 1 sin reload , 1: reload level 1 
};

struct NewPlayer {
    int characterId;
    char nombre[8];
    int score;
    int lifes;
    int connected;
};

struct Jugador {
    char nombre[8];
};

struct PosBonus {
    bool free;
    int x;
    int y;
};

struct ContenedorSocket{
    int socket;
    struct Jugador player;
};

#endif	/* STRUCTS_H */

